Ist ein:e gute:r Fullstack-Entwickler:in ein Mythos?
Die Definition von “gut” ist immer so ein bisschen die Frage. Jeder hat seine Präferenzen: Bin ich eher Backend- oder Frontend-fokussiert? Es gibt den T-shaped Entwickler – Man kennt das: Die eine Spezialisierung – einmal Frontend oder Backend. Oft sucht man jedoch nach M-shaped Entwicklern, die sagen: “Ein bisschen Frontend, ein bisschen Backend, vielleicht etwas Design oder Accessibility.” Solche Leute gibt es definitiv, auch wenn die Ausprägung unterschiedlich ist, und das ist völlig in Ordnung. Ich habe bei meinen Kunden viele Entwickler gesehen, die beides richtig gut können. Es ist definitiv kein Mythos.
In deinem Workshop geht es um Fullstack mit Vue und Nuxt. Welches Problem wird durch die Kombination der beiden Frameworks gelöst?
Man hört ganz oft Frontend-Frameworks wie Vue, Angular, Svelte oder React. Dann überlegt man, wie man das am besten mit dem Backend kombiniert. Es gibt viele Möglichkeiten: Man kann als Backend nehmen was man möchte. Allerdings will man manchmal noch mehr Kontrolle haben und ein besseres Zusammenspiel. Wenn man beispielsweise Nuxt als Meta-Framework verwendet, kann man sein Backend direkt in Nuxt schreiben – also dort meine API-Routen, Logik und Autorisierung. Oder ich mache Backend-for-Frontend-Modell. Heißt, ich nehme einfach das Nuxt-Backend wrappe ein anderes Backend, z. B. von einem anderen Team oder einem Drittanbieter, und habe dann aber bessere Kontrolle, z. B. was cache ich, was in dem allgemeinen Backend gar nicht gecacht werden soll oder ich gebe einfach nur die Daten zurück, die ich wirklich brauche. Ich kann gleichzeitig, da ich die gleiche Sprache nutze, JavaScript bzw. TypeScript, auch Typen synchronisieren, habe eine End-to-End-Type-Safety, dadurch eine bessere Developer Experience, weniger Bugs und weniger Probleme.
Mit welchem Mindset sollen die Teilnehmenden deinen Workshop morgen verlassen?
Ich sage mal mit Neugierde – einfach mal ausprobieren. Es muss jetzt nicht alles zum Anwendungsfall passen, den man in der Firma hat – das ist auch ganz normal. Aber einfach zu wissen: ‘Da gibt es vielleicht noch mehr, als das, was ich bisher weiß.’ oder ‘Es gibt verschiedene Pattern, vielleicht habe ich da einen Use Case bei mir in der Firma, da will ich mal ausprobieren. Oder ich kenne diese eine Komponente, die ich mal anpassen müsste. Und genau nach diesem Schema, also einfach dieses ‘Ich kann das mitnehmen, aber es muss nicht zwingend alles sein. Jedoch weiß ich zumindest, was ich bisher noch nicht wusste und kann noch weiter nachschauen.’
Welche praktischen Ansätze gibt es in deinem Workshop?
Es wird gar nicht so viel Theorie und Slides im Vorhinein geben. Es gibt ein paar Aufgaben, dazu natürlich eine Dokumentation, so eine kleine Vorstellung am Anfang und dann einfach mal zu sagen: ‘Hier ist die Aufgabe, hier gibt es ein paar Informationen – legt mal los!’ Am Ende schauen wir das gemeinsam an, jemand präsentiert vielleicht seine Lösung, und wir vergleichen sie mit einer Musterlösung. Anschließend gibt es Q&A und wir schauen ein bisschen in die Theorie rein.
Was machst du beruflich, wenn du nicht gerade Workshops hälst?
Beratung ganz viel – eben viel im Nuxt-Umfeld. Heißt, wenn es jemanden gibt, der sagt ‘Wir haben Performance-Probleme, wir wollen Migrieren (von Vue 2 auf Vue 3 oder Nuxt 2 auf Nuxt 3) oder die Architektur verbessern, wir haben eini Greenfield-Projekten und wollen jemanden der uns da hilft und das Ganze begleitet.’ Das mach ich alles.
Welchen Tipp gibst du deinen Kunden bezüglich Vue Advanced Patterns und kannst du diese jetzt an uns geben?
Es gibt viele erweiterte Patterns, aber es kommt immer auf den jeweiligen Fall an. Eine Sache, die ich immer mitgebe, ist die Verwendung der Composition API. Das ist zwar kein “advanced pattern”, aber wichtig. Dabei sollte man nicht alles extrahieren, sondern möglichst viel in den Komponenten lassen. Gleichzeitig kann man in JavaScript oder TypeScript Funktionen schreiben, sogenannte Inline-Composables. Dabei gruppiert man Reaktivität und State problembezogen in Funktionen, die man oben in der Komponente aufruft. Das folgt dem “Newspaper-Style” – das Wichtigste steht oben. So ist der Code übersichtlich und gut gegliedert.
Du bist zum wiederholten Male auf den JavaScript & Angular Days, was lässt dich immer wieder zurückkehren?
Die Community macht viel Spaß. Es macht sehr viel Spaß, die Teilnehmer zu treffen. Ich bin oft international unterwegs, vor einer Woche war ich in Japan. Es ist immer schön, wieder in Deutschland zu sein und die deutsche Community zu sehen. Ich habe das Gefühl, es gibt viele Leute in Deutschland die Vue schreiben, aber die Vue-Community könnte lauter sein. Da bin ich immer sehr froh, wenn ich so meinen Teil dazu beitragen kann, aber auch über den Tellerrand hinausblicken kann und mich dann mit Leuten aus den Universen von Svelte, Angular, React und so weiter unterhalten kann.